package com.av.db.dataobjects;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

/**
 * Clase que registra los cargos realizados al vehiculo
 * 
 * @author Victor J Morales R
 * 
 */
public class Adeudo implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public static final String ID = "id";
	public static final String ELEMENTOCATALOGO = "elementoCatalogo";
	public static final String FECHA = "fecha";
	public static final String TARJETA = "tarjeta";
	public static final String COSTO = "costo";

	// Miembros

	private int id;
	private ElementoCatalogo elementoCatalogo;
	private Tarjeta tarjeta;
	private Date fecha;
	private double costo;

	private Set<Imagen> imagenes;

	// Propiedades

	/**
	 * Obtiene el identificador de la tabla
	 */
	public int getId() {
		return id;
	}// getId

	/**
	 * Asigna el identificador de la tabla
	 * 
	 * @param id
	 */
	@SuppressWarnings("unused")
	private void setId(int id) {
		this.id = id;
	}// setId

	/**
	 * Obtiene el ElementoCatalogo al que se relaciona
	 */
	public ElementoCatalogo getElementoCatalogo() {
		return elementoCatalogo;
	}// getIdElementoCatalogo

	/**
	 * Asigna el ElementoCatalogo al que se relaciona
	 * 
	 * @param idElementoCatalogo
	 */
	public void setElementoCatalogo(ElementoCatalogo elementoCatalogo) {
		this.elementoCatalogo = elementoCatalogo;
	}// setIdElementoCatalogo

	/**
	 * Funcion que obtiene la tarjeta en la cual fue generado el adeudo
	 * 
	 * @return
	 */
	public Tarjeta getTarjeta() {
		return tarjeta;
	}// getTarjeta

	/**
	 * Asigna la tarjeta sobre la cual se generara el adeudo
	 * 
	 * @param tarjeta
	 */
	public void setTarjeta(Tarjeta tarjeta) {
		this.tarjeta = tarjeta;
	}// setTarjeta

	/**
	 * Obtiene la fecha en la se aplico el cargo a la tarjeta
	 * 
	 * @return
	 */
	public Date getFecha() {
		return fecha;
	}// getFecha

	/**
	 * Asigna la fecha en la que se realizo el cargo a la tarjeta
	 * 
	 * @param fecha
	 */
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}// setFecha

	/**
	 * Obtiene el costo cargado en la tarjeta vehicular
	 * 
	 * @return
	 */
	public double getCosto() {
		return costo;
	}// getCosto

	/**
	 * Asigna el costo cargado a la tarjeta vehicular
	 * 
	 * @param costo
	 */
	public void setCosto(double costo) {
		this.costo = costo;
	}// setCosto

	/**
	 * Obtiene las imagenes asociadas al adeudo
	 * 
	 * @return
	 */
	public Set<Imagen> getImagenes() {
		return imagenes;
	}// getImagenes

	/**
	 * Asigna las imagenes asociadas al adeudo
	 * 
	 * @param imagenes
	 */
	public void setImagenes(Set<Imagen> imagenes) {
		this.imagenes = imagenes;
	}// setImagenes

	// Funciones

	public String toString() {
		return this.fecha + " : " + this.costo;
	}// toString

	public boolean equals(Object o) {
		if (o == null || !(o instanceof Adeudo)) {
			return false;
		}
		return ((Adeudo) o).getId() == id;
	}// equals

}// Adeudo